package com.shensi.appCollect.enums;

import java.util.Arrays;

import com.shensi.appCollect.constantEnum.KeyValueable;
import com.shensi.appCollect.pay.PayChannel;
import com.shensi.appCollect.pay.strategy.SXFChannel;
import com.shensi.appCollect.pay.strategy.YunhuaChannel;

public enum CouponTemplateCouponEnum implements KeyValueable<Integer> {
	
	/***
	 * //优惠券类型： 1现金劵，2折扣券，3兑换券,洗车券；
	 */
	
	/**
	 * 1、现金劵 cashCoupon
	 */
	COUPON_CASH_COUPON("现金劵",1),
	
	/**
	 * 2、折扣券 coupon
	 */
	COUPON_COUPON("折扣券",2),
	
	/**
	 * ，3、兑换券 redemptionVoucher
	 */
	COUPON_REDEMPTION_VOUCHER("兑换券",3),
	/**
	 * 4、洗车券；carWashVoucher
	 */
	COUPON_CAR_WASH_VOUCHER("洗车券",4),
	;
	
	

	private String key;//用来做国际化的KEY
	private Integer value;//数据库存的值

	// 构造方法
	CouponTemplateCouponEnum(String key, Integer value) {
		this.key = key;
		this.value = value;
	}

	//覆盖方法
	@Override
	public String toString() {
		return this.key + ":" + this.value;
	}


	@Override
	public Integer getValue() {
		return this.value;
	}

	@Override
	public String getKey() {
		return this.key;
	}



	/**
	 * 根据value获得枚举对象
	 * @param value value值
	 * @return
	 */
	public static CouponTemplateCouponEnum getByValue(Integer value){
		for(CouponTemplateCouponEnum typeEnum : values()){
			if (typeEnum.getValue().equals(value)) {
				return typeEnum;
			}
		}
		return null;
	}


	public static Integer getValue(String type) {
		return Arrays.stream(values()).filter(e -> e.getKey().equals(type)).findFirst().map(CouponTemplateCouponEnum::getValue).orElse(null);
	}

	public static String getKey(int value) {
		return Arrays.stream(values()).filter(e -> e.getValue().equals(value)).findFirst().map(CouponTemplateCouponEnum::getKey).orElse(null);
	}
	
}

